################ Установка PromUC ################ .. seealso:: Документация к предыдущей версии PromUC 2.x.x :doc:`Установка системы 2` .. toctree:: :maxdepth: 4 :glob: .. ******************* .. Подготовка к работе .. ******************* Состав и содержание дистрибутивного носителя данных =================================================== Дистрибутив Promuc поставляется в двух вариантах, различающихся наличием в составе каталога с файлами docker-образов для установки комплекса на оборудовании заказчика: promuc-3.tar.gz (размер менее 1 МБ) и promuc-3-full.tar.gz (размер более 1 ГБ). Других отличий между ними нет. .. list-table:: Состав дистрибутива :widths: 10 20 10 10 :header-rows: 1 * - Каталог/файл - Назначение - promuc-3.tar.gz - promuc-3-full.tar.gz * - ``install.sh`` - Скрипт установки - ✓ - ✓ * - ``do.sh`` - Срипт управления сервисами - ✓ - ✓ * - ``update.sh`` - Скрипт обновления сервиса - ✓ - ✓ * - ``upgrade.sh`` - Скрипт обновления установочных файлов - ✓ - ✓ * - ``getimage.sh`` - Скрипт обновления docker-образа - ✓ - ✓ * - ``template.order`` - Шаблон файла .order - ✓ - ✓ * - ``template.env`` - Шаблон файла .env - ✓ - ✓ * - ``version`` - Содержит номер версии PromUC - ✓ - ✓ * - ``proxy`` - Каталог сервиса Traefik - ✓ - ✓ * - ``postgres`` - Каталог сервиса Postgres - ✓ - ✓ * - ``redis`` - Каталог сервиса Redis - ✓ - ✓ * - ``rabbitmq`` - Каталог сервиса RabbitMQ - ✓ - ✓ * - ``gitea`` - Каталог сервиса Gitea - ✓ - ✓ * - ``framework`` - Каталог сервиса Module Framework - ✓ - ✓ * - ``ruleengine`` - Каталог сервиса Module RuleEngine - ✓ - ✓ * - ``gis`` - Каталог сервиса Module Gis - ✓ - ✓ * - ``fluentbit`` - Каталог сервиса Fluenbit - ✓ - ✓ * - ``updater`` - Каталог сервиса Updater - ✓ - ✓ * - ``pgadmin`` - Каталог сервиса PgAdmin - ✓ - ✓ * - ``portainer`` - Каталог сервиса Portainer - ✓ - ✓ * - ``install`` - Каталог со служебными файлами установки - ✓ - ✓ * - ``images`` - Каталог с docker-образами - - ✓ Порядок загрузки данных и программ ================================== Получение дистрибутива ---------------------- Дистрибутив Promuc доступен по следующим ссылкам: * без docker-образов - https://download.protei-sm.ru/promuc-3.tar.gz * с docker-образами - https://download.protei-sm.ru/promuc-3-full.tar.gz Порядок его скачивания будет рассмотрен далее. Подготовка к установке для Debian 12 ------------------------------------ Минимальные требования ^^^^^^^^^^^^^^^^^^^^^^ * Операционная система: Debian GNU/Linux версии не ниже 11 или иная производная от неё * Процессор: x64 2 ядра * Память: 4 ГБ * Хранилище: не менее 3 ГБ * Дополнительное программное обеспечение: * Docker Engine, Compose v2 * curl, pv, git, bzip2, gnupg2, openssl, ca-certificates, lsb-release, htpasswd Настройка прокси ^^^^^^^^^^^^^^^^ В случае, если для доступа в Интернет используется прокси, то необходимо предварительно настроить параметры APT, docker, профиль пользователя. Пример настройки http-прокси с аутентификацией логин - ``test.tt``, пароль - ``:T|T^T~T.t2``. * Пример настройки файла ``/etc/apt/apt.conf.d/99-proxy``: .. code-block:: shell Acquire::http::Proxy "http://test.tt::T|T^T~T.t2@10.186.0.116:3128"; Acquire::https::Proxy "http://test.tt::T|T^T~T.t2@10.186.0.116:3128"; * Пример настройки файла ``~/.profile`` с добавлением переменных ``*_proxy``: .. code-block:: shell # ~/.profile: executed by Bourne-compatible login shells. export http_proxy="http://test.tt::T|T^T~T.t2@10.186.0.116:3128" export https_proxy="http://test.tt::T|T^T~T.t2@10.186.0.116:3128" export no_proxy="localhost,.local,127.0.0.0/8,promuc.demo,.promuc.demo,172.16.16.0/24" if [ "$BASH" ]; then if [ -f ~/.bashrc ]; then . ~/.bashrc fi fi mesg n 2> /dev/null || true * Пример настройки файла ``~/.docker/config.json``. В этом файле обязательно заменяем специальные символы их шестнадцатиричным кодом с экранированием символом ``%``: .. code-block:: json { "proxies": { "default": { "httpProxy": "http://test%2Ett:%3AT%7CT%5ET%7ET%2Et2@10.186.0.116:3128", "httpsProxy": "http://test%2Ett:%3AT%7CT%5ET%7ET%2Et2@10.186.0.116:3128", "noProxy": "172.16.16.0/24" } } } * Пример настройки файла ``/etc/systemd/system/docker.service.d/http-proxy.conf``. В этом файле специальные символы экранируем двойным символом ``%``: .. code-block:: shell [Service] Environment="HTTP_PROXY=http://test%%2Ett:%%3AT%%7CT%%5ET%%7ET%%2Et2@10.186.0.116:3128" Environment="HTTPS_PROXY=http://test%%2Ett:%%3AT%%7CT%%5ET%%7ET%%2Et2@10.186.0.116:3128" Предварительные настройки ^^^^^^^^^^^^^^^^^^^^^^^^^ Все описанные далее действия выполняются в командной строке терминала Linux Debian. В случае отсутствия отдельных компонентов может потребоваться подключение к сети Интернет для их установки. Установку необходимо производить от имени ``root`` или другого пользователя, обладающего аналогичными правами, с командой ``sudo``. Чтобы сократить ввод и не добавлять для каждого действия команду ``sudo`` можно один раз перед установкой выполнить команду ``sudo -i`` и затем указать пароль учётной записи, чтобы все последующие действия выполнялись с правами суперпользователя или переключиться на пользователя, обладающего правами администратора, например, ``root``, при помощи команды ``su - root``: .. code-block:: console $ sudo -i [sudo] password for user: # или .. code-block:: console $ su - root Password: # Файлы .order и template.order ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ В файле .order определяется перечень устанавливаемых сервисов скриптами ``install.sh`` и ``do.sh``. Строки начинающиеся с символа ``#`` пропускаются. Например изначально не устанавливаются ``portainer``, ``pgadmin``, ``gis``: .. code-block:: console proxy fluentbit postgres redis #portainer rabbitmq memcached framework gitea #pgadmin #gis updater ruleengine При отсутствии файла ``.order`` он создаётся из ``template.order``. Корневой файл .env ^^^^^^^^^^^^^^^^^^ При установке файл .env создаётся из template.env: .. code-block:: console SERVICE_DOMAIN= PROMUC_DOWNLOAD_URL=https://download.protei-sm.ru - ``SERVICE_DOMAIN`` - получает в качестве значения домен установки PromUC. - ``PROMUC_DOWNLOAD_URL`` - адрес сайта с docker-файлами образов сервисов. Используется в случае размещения файлов на стороне заказчика. При этом будут использоваться следующие пути: - ``/images/`` - для docker-образов - ``/maps/`` - для картографических файлов сервиса Gis Файлы .env сервисов ^^^^^^^^^^^^^^^^^^^ В данных файлах указываются служебные переменные необходимые для установки и работы конкретного сервиса. При отсутствии файла ``.env`` сервис считается не установленным. Файл создаётся при выполнении скрпита ``install.sh`` с аргументом ``--recreate`` или ``-r``. Настройка преобразования сетевых имён сервисов ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Каждый сервис PromUC использует отдельный домен следующего уровня. Например, для существующего домена ``promuc.loc`` сервис Proxy будет использовать адрес ``proxy.promuc.loc``. Для использования сервисов PromUC с других АРМ в сети предприятия настройте в DNS-зоне соответствующие А-записи для сервисов ``promuc.loc, proxy.promuc.loc, mq.promuc.loc, fw.promuc.loc, re.promuc.loc, gis.promuc.loc, portainer.promuc.loc, pgadmin.promuc.loc``. Пример А-записи для Proxy и существующего домена promuc.loc: .. code-block:: console proxy.promuc.loc. 3600 IN A 185.91.54.107 Режим дополнительного логирования (DEBUG) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Режим DEBUG предназначен для включения логирования выполнения скриптов установки PromUC с целью выполнения диагностики и устранения неполадок. Для его включения необходимо установить любое значение переменной ``DEBUG``, например, посредством выпонения команды консоли: .. code-block:: console export DEBUG=1 После чего в каталогах PromUC при выполнении скриптов будут создаваться файлы с именем ``.<Имя файла скрипта>``, например, ``promuc/.install.sh.log``. Установка для Debian -------------------- Процесс установки будет рассмотрен на примере системы Debian 11, для других версий может потребоваться ручная установка необходимых компонентов, например, ``Docker``. .. attention:: Установку необходимо производить от имени ``root`` или другого пользователя, обладающего аналогичными правами, с командой ``sudo``. Загрузите и распакуйте соответствующий архив в каталог ``/opt``: .. code-block:: console # cd /opt # curl -O https://download.protei-sm.ru/promuc-3.tar.gz # tar -xf promuc-3.tar.gz # cd promuc Установка выполняется скриптом ``install.sh``: .. code-block:: console # ./install.sh --recreate .. note:: ключ ``--recreate`` или ``-r`` указывает провести установку с удалением имеющихся данных .. attention:: При установке с ключом ``--recreate`` или ``-r`` накопленные данные будут уничтожены .. note:: при использовании дополнительного ключа ``-f`` установка будет выполняться без дополнительных запросов на продолжение после установки каждого сервиса Установщик выводит в консоль перечень устанавливаемых сервисов и их очерёдность установки. Если не был указан ключ ``-f``, то для положительного ответа на вопрос можно просто нажать клавишу ``Enter``. .. code-block:: console Выполнить установку PromUC (Y/n): y Обновляем кеш пакетной базы... Требуется установка пакетов: jq rsync gnupg2 lsb-release git bzip2 apache2-utils Продолжаем? (Y/n): y Устанавливаем пакеты...OK Проверяем наличие и версии Docker и Compose... Требуется установка Docker Требуется провести обновление согласно инструкции https://docs.docker.com/engine/install/debian/ Продолжаем? (Y/n): y Далее установщик попытается удалить старые версии имеющихся компонентов: .. code-block:: console Удаляем docker docker-engine docker.io docker-compose containerd runc Добавляем репозиторий Docker Требуется установка пакетов: docker-ce docker-ce-cli containerd.io docker-compose-plugin Устанавливаем пакеты...OK Согласно файла .order будут установлены следующие компоненты: proxy fluentbit postgres redis rabbitmq memcached framework gitea updater ruleengine Если необходимо скорректировать то нажмите 'n', отредактируйте данный файл и повторно запустите установку Продолжаем? (Y/n): Далее необходимо ввести адрес домена, в пространстве которого будут функционировать сервисы комплекса (далее для примера будет использоваться домен ``promuc.loc``). .. code-block:: console Настраиваем прокси traefik Введите домен сервисов 2-го уровня или более: promuc.loc Далее задаем логин администратора (по-умолчанию admin): .. code-block:: console Не найден адрес proxy.promuc.loc, добавляем в /etc/hosts Введите логин администратора: admin и пароль (генерируется случайный): .. code-block:: console Введите пароль администратора (не менее 12 символов): d91cd047c057 Далее скрипт отобразит логин и пароль для панели управления сервиса Traefik и попросит указать адрес электронной почты администратора: .. code-block:: console Для доступа к панели мониторинга прокси используйте URL: https://proxy.promuc.loc логин: admin пароль: d91cd047c057 Введите email администратора: admin@promuc.loc .. note:: Адрес электронной почты, в частности, необходим при использовании PgAdmin4 (средство администрирования базы данных, при необходимости устанавливается отдельно) и должен соответствовать как минимум записи username@domain.ru или аналогичной. Далее выбираем какой сертификат будем использовать для защиты соединений: .. code-block:: console Выберите - генерируем сертификат (1), получаем от Let's Encrypt (2) или использовать собственные (3): 1 1. создание самозаверенного сертификата 2. получение публичного сертификата при помощи сервиса в интернете 3. использование имеющихся сертификатов Для локального развертывания достаточно выбрать первый вариант. Далее скрипт сообщает расположение файла сертификата ca.crt: :: Сертификат CA доступен в /opt/promuc/proxy/conf/certs/ca.crt и по ссылке https://promuc.loc/ca.crt Необходимо импортировать в браузер и в системный список доверенных корневых центров сертификации Указанный сертификат после окончания установки необходимо будет импортировать в список "Доверенных корневых центров сертификации". Например в Яндекс.Браузер - ``Настройки > Системные > Управление Сертификатами``. Аналогичный пункт настройки имеется в других браузерах. После установки сервиса скрипт выводит результат запуска контейнеров установленного сервиса и запрашивает продолжение установки: .. code-block:: text Запускаем прокси Получаем файл ... ................. ................. [+] Running 2/2 ✔ Network proxy_backend Created 0.2s ✔ Container traefik Healthy 2.0s Следующим будет установлен сервис fluentbit Продолжаем? (Y/n): Аналогичные сообщения будут выведены после установки остальных сервисов. По окончании установки создаётся файл ``/opt/promuc/.config`` со списком реквизитов доступа к сервисам: .. code-block:: text Установка Promuc окончена Основные реквизиты доступа в файле /opt/promuc/.config ### Traefik ### логин: admin пароль: 80198eb7 email: admin@promuc.loc ### Сертификат CA ### -----BEGIN CERTIFICATE----- MIIC4jCCAcqgAwIBAgIUFXr9q8xMehI8RDEfGgz8cYc1y2kwDQYJKoZIhvcNAQEL ... g6El72bpeSnNVoI2ByZHDMbX+XvOjw== -----END CERTIFICATE----- ### Portainer ### логин: admin пароль: 80198eb7 ### PgAdmin ### логин: admin@promuc.loc пароль: 80198eb7 ### RabbitMQ ### логин: user пароль: user ### Gitea ### логин: gitadmin пароль: 80198eb7 Выборочная установка сервисов PromUC ------------------------------------ Допускается выборочная установка сервисов PromUC посредством скриптов ``install.sh`` в каталоге сервиса. После установки будут внесены изменения в файл ``.order`` если ранее в нём данный сервис был закомментирован. Например, при первичной установке будут проигнорированы сервисы ``portainer``, ``memcached``, ``pgadmin``, ``gis``: .. code-block:: shell proxy fluentbit postgres redis #portainer rabbitmq #memcached framework gitea #pgadmin #gis updater ruleengine При выполнении команды ``portainer/install.sh -r`` сервис ``portainer`` будет установлен, запущен и убрано комментирование в файле ``.order``. Добавление сертификатов ----------------------- Добавление сертификатов будет рассмотрено на примере web браузера Firefox. 1. Откройте браузер Firefox 2. Кликните на значке меню в правом верхнем углу и затем выберите ``Settings``: .. image:: img/cert-firefox_1.png :align: center :width: 450 3. Выберите ``Privacy & Security`` и затем в разделе ``Certificates`` кликните на ``View Certificates...``: .. image:: img/cert-firefox_2.png :align: center :width: 500 4. Выберите ``Authorities`` и кликните на ``Import...``: .. image:: img/cert-firefox_3.png :align: center :width: 400 5. Перейдите в папку ``/opt/promuc/proxy/conf/certs`` и выберите сертификат ``ca.crt``, нажмите ``Open``: .. image:: img/cert-firefox_4.png :align: center :width: 400 6. Установите флажки и кликните на ``ОК``: .. image:: img/cert-firefox_5.png :align: center :width: 400 Тестовый запуск интерфейса пользователя --------------------------------------- Для запуска интерфейса пользователя необходимо в адресной строке web браузера ввести адрес ``https://имядомена``, для данного примера он будет ``https://promuc.loc``: .. image:: img/start_url.png :align: center :width: 350 Далее необходимо ввести учётные данные, которые вывел установщик: .. image:: img/start_url_2.png :align: center :width: 450 Интерфейс пользователя откроется в окне web браузера: .. image:: img/start_url_5.png :align: center :width: 550 Cведения о порядке работы c системой можно найти в `Руководстве пользователя `_.